From 6ef2d5115d092ca7ffd35d556c0839e7397d3f20 Mon Sep 17 00:00:00 2001 From: robertl Date: Thu, 27 Apr 2006 20:07:28 +0000 Subject: [PATCH] Fill in missing pieces to populate cadence from units like Edge 305. --- gpsbabel/Makefile.in | 2 +- gpsbabel/defs.h | 3 ++- gpsbabel/garmin.c | 1 + gpsbabel/jeeps/gps.h | 3 ++- gpsbabel/jeeps/gpsapp.c | 6 +++++- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gpsbabel/Makefile.in b/gpsbabel/Makefile.in index f48e7e5e4..528c765ce 100644 --- a/gpsbabel/Makefile.in +++ b/gpsbabel/Makefile.in @@ -3,7 +3,7 @@ VPATH = @srcdir@ VERSU=1_2_8 VERSD=1.2.8 # YYYYMMDD, please, if beta. -RELEASE=-beta20060420-ds +RELEASE=-beta20060423-GSAK VERSIONU=$(VERSU)$(RELEASE) VERSIOND=$(VERSD)$(RELEASE) diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index b651c0a33..268093706 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -323,7 +323,8 @@ typedef struct { fix_type fix; /* Optional: 3d, 2d, etc. */ int sat; /* Optional: number of sats used for fix */ - int heartrate; /* Beats per minute: likely to get moved to fs. */ + unsigned char heartrate; /* Beats/min. likely to get moved to fs. */ + unsigned char cadence; /* revolutions per minute */ float temperature; /* Degrees celsius */ geocache_data gc_data; format_specific_data *fs; diff --git a/gpsbabel/garmin.c b/gpsbabel/garmin.c index 9ebaa85b4..5343db3ac 100644 --- a/gpsbabel/garmin.c +++ b/gpsbabel/garmin.c @@ -331,6 +331,7 @@ track_read(void) wpt->latitude = array[i]->lat; wpt->altitude = array[i]->alt; wpt->heartrate = array[i]->heartrate; + wpt->cadence = array[i]->cadence; wpt->shortname = xstrdup(array[i]->trk_ident); wpt->creation_time = array[i]->Time; diff --git a/gpsbabel/jeeps/gps.h b/gpsbabel/jeeps/gps.h index 3a0c66e86..93ca4bf91 100644 --- a/gpsbabel/jeeps/gps.h +++ b/gpsbabel/jeeps/gps.h @@ -88,7 +88,8 @@ typedef struct GPS_STrack float dpth; /* Depth */ float temperature; /* Temperature. Degrees Celsius. */ int temperature_populated; /* True if above is valid. */ - int32 heartrate; /* Heatrate as in Garmin 301 */ + unsigned char heartrate; /* Heartrate as in Garmin 301 */ + unsigned char cadence; /* Crank cadence as in Edge 305 */ unsigned int tnew:1; /* New track? */ unsigned int ishdr:1; /* Track header? */ unsigned int no_latlon:1; /* True if no valid lat/lon found. */ diff --git a/gpsbabel/jeeps/gpsapp.c b/gpsbabel/jeeps/gpsapp.c index dbe5dc422..6c37f910c 100644 --- a/gpsbabel/jeeps/gpsapp.c +++ b/gpsbabel/jeeps/gpsapp.c @@ -4012,9 +4012,13 @@ int i; switch (gps_trk_type) { case pD304: p+=4; /* A float indicating number of meters travelled. */ + (*trk)->heartrate = (*p++); /* crank cadence, RPM, 0xff if invalid. */ - p++; + if (*p != 0xff) { + (*trk)->cadence = (*p); + } + /* sensor present. Boolean */ p++; -- 2.30.2